创建脚本文件
第一步是使用以下命令创建一个扩展名为.sh的新文件:
1 | [root@localhost ~]# touch hello_world.sh |
写一个简单的脚本
使用vim编辑器打开新创建的文件,将以下bash脚本添加到文件中:
1 | [root@localhost ~]# vim hello_world.sh |
下面是添加到文件中的脚本内容:
1 | #!/bin/bash echo "Hello World" |
编辑完,保存并退出。
执行Bash脚本
有两种方法可以运行bash文件。
第一种是通过使用bash或sh命令。
另一种将文件添加可执行权限,就可以直接运行。
让我们运行以下命令以使用bash或sh命令执行bash脚本。
1 | [root@localhost ~]# sh hello_world.sh |
为脚本文件设置可执行权限
执行bash脚本的第二种方法是设置可执行权限。
1 | [root@localhost ~]# chmod +x hello_world.sh |
可以看到hello_world.sh文件已经有x可执行权限了。
执行脚本
将可执行权限分配给脚本后,可以不带bash命令直接运行脚本,如下所示:
1 | [root@localhost ~]# ./hello_world.sh |
目录备份
在下面的示例中,我将编写并执行一个bash脚本以从源目录到目标目录进行备份:
1 | [root@localhost ~]# vim backup_bash.sh |
下面内容粘贴到backup_bash.sh文件中。
1 | #!/bin/bash |
保存脚本文件,并退出。为脚本文件添加可执行权限:
1 | [root@localhost ~]# chmod +x backup_bash.sh |
运行脚本:
1 | [root@localhost ~]# ./backup_bash.sh |
出现问题记录
1 | [root@localhost ~]# ./backup_bash.sh |
解决办法
替换其中的\r
1 | sed -i 's#\r$##g' backup_bash.sh |
问题出现的原因
windows下,每一行的结尾是\n\r,而在linux下文件的结尾是\n,
那么你在windows下编辑过的文件在linux下打开看的时候每一行的结尾就会多出来一个字符\r。
用cat -A backup_bash.sh时你可以看到这个\r字符被显示为^M,这时候只需要删除这个字符就可以了。
可以使用命令sed -i ‘s#\r$##g’ backup_bash.sh 。